package com.ow.dva.module.base.service;

import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;

public interface ImageService {

    /**
     * 获取静态资源绝对路径，可指定某相对路径
     * 如：/upload
     * 创建时间：2020-03-27 高祥
     * 修改时间：2020-03-27 高祥 加注释
     * 修改时间：
     * @param relativeDir 相对路径
     * @return 根目录到相对路径的系统绝对路径地址
     */
    public String getStaticPath(String relativeDir);

    /**
     * 生成绝对路径 + 日期路径 并生成日期路径文件夹
     *
     *
     * 创建时间：2020-03-27 高祥
     * 修改时间：2020-03-27 高祥 加注释
     * 修改时间：
     * @param staticPath
     * @return 新生成的日期相对地址
     */
    public String createDateDir(String staticPath);

    /**
     * 图片文件上传
     * 创建时间：2020-03-27 高祥
     * 修改时间：2020-03-27 高祥 加注释
     * 修改时间：
     * @param imageFile 图片文件
     * @return 图片相对路径地址
     * @throws IOException 文件流异常
     */
    public String imageFileUpload(MultipartFile imageFile) throws IOException;

    /**
     * 文件下载
     * 创建时间：2020-03-27 高祥
     * 修改时间：2020-03-27 高祥 加注释
     * 修改时间：
     * @param response response
     * @param realPath 文件真实绝对路径
     * @throws IOException 文件流异常
     */
    public void downFile(HttpServletResponse response,String realPath) throws IOException;

    public String generateImageFileName(String staticPath,String contentType);

    String uploadPassPic(MultipartFile file, String path) throws IOException;
}
